package com.etime.shycourse.services.wxcoupon.interfaces;

import com.etime.shy.common.BaseMessage;
import com.etime.shycourse.dto.CouponMyDto;
import com.etime.shycourse.dto.CouponRangeDto;
import com.etime.shycourse.dto.CurrentUser;
import com.etime.shycourse.dto.UseVoucherParam;
import com.etime.shycourse.pojo.Coupon;

import java.util.List;

/**
 * 微信端与优惠券相关的服务层接口
 */
public interface WXCouponService {

    /**
     * 根据活动id查询活动所包含的可用优惠券列表
     * @param activityid 活动id
     * @return
     */
    List<Coupon> selectCouponListByActivityId(Integer activityid);

    /**
     * 根据userid查询用户的可用优惠券列表
     * @param userid
     * @return
     */
    List<CouponMyDto> selctMyCouponList(Integer userid);

    /**
     * 根据优惠券id查询优惠券的使用范围
     * @param couponid 优惠券id
     * @return
     */
    List<CouponRangeDto> selectCouponRangeList(Integer couponid);

    /**
     * 根据优惠券id查询一条优惠券的详细信息
     * @param couponid
     * @return
     */
    Coupon selectCouponById(Integer couponid);

    /**
     * 根据优惠券领取id查询优惠券详细信息
     *
     * @param reciveid 优惠券领取id
     * @return
     */
    CouponMyDto selectCouponByReciveId(Integer reciveid);

    /**
     * 使用兑换券兑换课程或者课程包的服务层
     * @param param 参数
     * @param user 当前登录用户
     * @return
     */
    BaseMessage useVoucher(UseVoucherParam param, CurrentUser user);
}
